#ifndef TORRENTINFO_H_
#define TORRENTINFO_H_

#include <string>
#include <vector>
#include <map>
#include <iostream>
#include "Funciones.h"

class DiccionarioBencode;

using namespace std;

typedef struct archivo {
	long int length;
	string path;
} Archivo;

class TorrentInfo {

private:
	string trackerHostname;
	string trackerAnnounce;
	string name;
	string hasInfo;
	long int piecesLength;
	vector<Archivo> archivos;
	vector<string> hashes;
	unsigned short int puerto;

	void parseAnnounceAndHostname(const string &announce);

public:

	TorrentInfo(const string &hasInfo,const string &announce,long int piecesLength,const vector<Archivo> &archivos,vector<string> hashes);
	virtual ~TorrentInfo();

	string getNombre();
	string getTrackerHostname() const;
	string getTrackerAnnounce() const;
	long int getPiecesLength() const;
	vector<Archivo> getArchivos() const;
	vector<string> getHashes() const;
	string getHashInfo() const;
	unsigned int getCantidadPiezas() const;
	unsigned short int getPuerto() const;
};

#endif /* TORRENTINFO_H_ */
